-- ----------------------------
-- Procedure structure for [ListarRequerimientos]
-- ----------------------------
DROP PROCEDURE [dbo].[ListarRequerimientos]
GO

CREATE PROCEDURE [dbo].[ListarRequerimientos]
(
	@idProyecto numeric
)
AS
BEGIN
	
	SELECT REQUERIMIENTO.ID_REQUERIMIENTO, CONTENIDO_ELEMENTO.CONTENIDO_CE
		FROM REQUERIMIENTO, CONTENIDO_ELEMENTO, PLANTILLA_PROYECTO_ELEMENTO, ELEMENTO
			WHERE REQUERIMIENTO.IDPROYECTO = @idProyecto
			AND REQUERIMIENTO.ID_REQUERIMIENTO = CONTENIDO_ELEMENTO.ID_REQUERIMIENTO
			AND CONTENIDO_ELEMENTO.ID_PE = PLANTILLA_PROYECTO_ELEMENTO.ID_PE
			AND PLANTILLA_PROYECTO_ELEMENTO.ID_ELEMENTO = ELEMENTO.ID_ELEMENTO
			AND ELEMENTO.NOMBREELEMENTO in ('Nombre Requerimiento');
END
GO

-- ----------------------------
-- Procedure structure for [dbo].[ConsultarDetalleRequerimiento]
-- ----------------------------

ALTER PROCEDURE [dbo].[ConsultarDetalleRequerimiento]
(
	@idRequerimiento numeric
)
AS
BEGIN
	
	SELECT ELEMENTO.NOMBREELEMENTO, CONTENIDO_ELEMENTO.CONTENIDO_CE
		FROM CONTENIDO_ELEMENTO, PLANTILLA_PROYECTO_ELEMENTO, ELEMENTO
			WHERE CONTENIDO_ELEMENTO.ID_REQUERIMIENTO = @idRequerimiento
			AND CONTENIDO_ELEMENTO.ID_PE = PLANTILLA_PROYECTO_ELEMENTO.ID_PE
			AND ELEMENTO.ID_ELEMENTO = PLANTILLA_PROYECTO_ELEMENTO.ID_ELEMENTO;
END

-- ----------------------------
-- Procedure structure for [dbo].[EliminarRequerimiento]
-- ----------------------------
DROP PROCEDURE [dbo].[EliminarRequerimiento]
GO

CREATE PROCEDURE [dbo].[EliminarRequerimiento]
(
	@idRequerimiento numeric
)
AS
BEGIN
	
	DELETE FROM CASO_ACTOR
	WHERE CASO_ACTOR.ID_CU = CASODEUSO.ID_CU
	AND CASODEUSO.ID_REQUERIMIENTO = @idRequerimiento;
	
	DELETE FROM CASODEUSO
	WHERE CASODEUSO.ID_REQUERIMIENTO = @idRequerimiento;
	
	DELETE FROM CONTENIDO_ELEMENTO
	WHERE CONTENIDO_ELEMENTO.ID_REQUERIMIENTO = @idRequerimiento;
	
	DELETE FROM REQUERIMIENTO
	WHERE REQUERIMIENTO.ID_REQUERIMIENTO = @idRequerimiento;
END
GO

-- ----------------------------
-- Procedure structure for [dbo].[ListarElemento]
-- ----------------------------
DROP PROCEDURE [dbo].[ListarElemento]
GO

CREATE PROCEDURE [dbo].[ListarElemento]
(
	@idProyecto numeric
)
AS
BEGIN
	SELECT ELEMENTO.ID_ELEMENTO, ELEMENTO.NOMBREELEMENTO
		FROM ELEMENTO, PLANTILLA_PROYECTO, PLANTILLA, TIPO_PLANTILLA
			WHERE PLANTILLA_PROYECTO.IDPROYECTO = @idProyecto
			AND PLANTILLA_PROYECTO.ID_PLANTILLA = PLANTILLA.ID_PLANTILLA
			AND PLANTILLA.ID_TP = TIPO_PLANTILLA.ID_TP
			AND TIPO_PLANTILLA.NOMBRE_TP = 'Plantilla Requerimiento'
			AND PLANTILLA.ID_PLANTILLA = ELEMENTO.ID_PLANTILLA
			AND ELEMENTO.ELE_ID_ELEMENTO IS NULL;
END
GO

-- ----------------------------
-- Procedure structure for [dbo].[BuscarWebControls]
-- ----------------------------
DROP PROCEDURE [dbo].[BuscarWebControls]
GO

CREATE PROCEDURE [dbo].[BuscarWebControls]
(
	@nombreElemento varchar(100)
)
AS
BEGIN
	SELECT TIPO_ELEMENTO.NOMBRE_TIPOELEMENTO
		FROM ELEMENTO, TIPO_ELEMENTO
			WHERE ELEMENTO.ID_TIPOELEMENTO = TIPO_ELEMENTO.ID_TIPOELEMENTO
			AND ELEMENTO.NOMBREELEMENTO = @nombreElemento;
END
GO

-- ----------------------------
-- Procedure structure for [dbo].[BuscarHijos]
-- ----------------------------
DROP PROCEDURE [dbo].[BuscarHijos]
GO

CREATE PROCEDURE [dbo].[BuscarHijos]
(
	@idPadre int
)
AS
BEGIN
	SELECT ELEMENTO.CONTENID_PRED
		FROM ELEMENTO
			WHERE ELEMENTO.ELE_ID_ELEMENTO = @idPadre;
END
GO

-----------------------------
-- Procedure structure for [dbo].[InsertarRequerimiento]
-- --------------------------
DROP PROCEDURE [dbo].[InsertarRequerimiento]
GO

CREATE PROCEDURE [dbo].[InsertarRequerimiento]
(
	@idProyecto numeric
	@codReq varchar(50)
)
AS
BEGIN
	INSERT INTO REQUERIMIENTO
	VALUES (@idProyecto,@codReq);
END
GO

-----------------------------
-- Procedure structure for [dbo].[InsertarPlantillaProyectoElemento]
-- --------------------------
DROP PROCEDURE [dbo].[InsertarPlantillaProyectoElemento]
GO

CREATE PROCEDURE [dbo].[InsertarPlantillaProyectoElemento]
(
	@idProyecto numeric,
	@idElemento numeric
)
AS
BEGIN
	INSERT INTO PLANTILLA_PROYECTO_ELEMENTO
	values ((SELECT MAX(PLANTILLA_PROYECTO.ID_PP)
				FROM PLANTILLA, TIPO_PLANTILLA, PLANTILLA_PROYECTO
				 WHERE PLANTILLA_PROYECTO.IDPROYECTO = @idProyecto
				 AND PLANTILLA.ID_PLANTILLA = PLANTILLA_PROYECTO.ID_PLANTILLA
				 AND PLANTILLA.ID_TP = TIPO_PLANTILLA.ID_TP
				 AND TIPO_PLANTILLA.NOMBRE_TP = 'Plantilla Requerimiento'
				 AND PLANTILLA.STATUS_PLANTILLA = 'TRUE'), @idElemento);
END
GO

-----------------------------
-- Procedure structure for [dbo].[InsertarContenidoElemento]
-- --------------------------
DROP PROCEDURE [dbo].[InsertarContenidoElemento]
GO

CREATE PROCEDURE [dbo].[InsertarContenidoElemento]
(
	@valorElemento varchar(1000)
)
AS
BEGIN
	INSERT INTO CONTENIDO_ELEMENTO
	values (SELECT MAX(PLANTILLA_PROYECTO_ELEMENTO.ID_PE)
				FROM PLANTILLA_PROYECTO_ELEMENTO, SELECT MAX(REQUERIMIENTO)
													FROM REQUERIMIENTO, @valorElemento);

END
GO